package main

import "fmt"

/*
	recover 是一个 Go 内置函数，可以重新获取对一个运行时恐慌的 goroutine 的控制。recover 仅在 defer 延迟函数内部使用。
	在正常执行程序中，调用 recover 函数，将返回 nil。如果当前 goroutine 处于恐慌状态，调用 recover 会捕获提供给 panic 的值并恢复正常执行
*/
func te01() {
	fmt.Println("te01")

}
func te02(a int) {
	//防止程序崩溃，让程序继续执行
	defer func() {
		//控制台输出错误
		fmt.Println(recover())
	}()
	var aa [3]int
	aa[a] = 11
}
func te03() {
	fmt.Println("te03")

}
func main() {
	te01()
	te02(5) //回报错，提示下标越界
	te03()
}
